package com.ecommerce.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单信息表
 *
 * @author wang
 * @TableName t_order
 */
@ApiModel(description = "订单信息表")
@Data
@TableName("t_order")
public class Order implements Serializable {
    /**
     * 订单id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("订单id")
    @TableId("order_id")
    private Long orderId;

    /**
     * 商品id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("商品id")
    private Long productId;

    /**
     * 商户id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("商户id")
    private Long shopId;

    /**
     * 订单状态（0-待支付，1-待发货，2-待签收，3-已完成，4-已关闭）
     */
    @ApiModelProperty("订单状态（0-待支付，1-待发货，2-待签收，3-已完成，4-已关闭）")
    private String orderStatus;

    /**
     * 运单号
     */
    @ApiModelProperty("运单号")
    private String waybillNo;

    /**
     * 快递公司
     */
    @ApiModelProperty("快递公司")
    private String expressName;

    /**
     * 用户id
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty("用户id")
    private Long userId;

    /**
     * 优惠券id
     */
    @ApiModelProperty("优惠券id")
    private Long couponId;

    /**
     * 商品数量
     */
    @ApiModelProperty("商品数量")
    private Integer productNum;

    /**
     * 应收
     */
    @ApiModelProperty("应收")
    private BigDecimal receivable;

    /**
     * 优惠金额
     */
    @ApiModelProperty("优惠金额")
    private BigDecimal discount;

    /**
     * 实收
     */
    @ApiModelProperty("实收")
    private BigDecimal paidIn;

    /**
     * 评价等级
     */
    @ApiModelProperty("评价等级")
    private String commentLevel;

    /**
     * 评价内容
     */
    @ApiModelProperty("评价内容")
    private String commentContent;

    /**
     * 商品名称
     */
    @ApiModelProperty("商品名称")
    private String productName;

    /**
     * 图片链接
     */
    @ApiModelProperty("图片链接")
    private String imgUrl;

    /**
     * 支付时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty("支付时间")
    private Date payTime;

    /**
     * 完成时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty("完成时间")
    private Date finishTime;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty(hidden = true)
    private static final long serialVersionUID = 1L;

}